[INFO] fetching crate promise 0.0.4...
[INFO] checking promise-0.0.4 against master#e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682 for beta-170-4
[INFO] extracting crate promise 0.0.4 into /workspace/builds/worker-5-tc2/source
[INFO] validating manifest of crates.io crate promise 0.0.4 on toolchain e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate promise 0.0.4
[INFO] finished tweaking crates.io crate promise 0.0.4
[INFO] tweaked toml for crates.io crate promise 0.0.4 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" __CARGO_TEST_CHANNEL_OVERRIDE_DO_NOT_USE_THIS="nightly" "/workspace/cargo-home/bin/cargo" "+e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:19e73879b68f455e41552ea35293514db52ea292d993f571636dbffedb77a1ee" "/opt/rustwide/cargo-home/bin/cargo" "+e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] bacb83d629af9245196594a4b499ff3e6d78d114c0a4efa87f90f065c634c803
[INFO] running `Command { std: "docker" "start" "-a" "bacb83d629af9245196594a4b499ff3e6d78d114c0a4efa87f90f065c634c803", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bacb83d629af9245196594a4b499ff3e6d78d114c0a4efa87f90f065c634c803", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bacb83d629af9245196594a4b499ff3e6d78d114c0a4efa87f90f065c634c803", kill_on_drop: false }`
[INFO] [stdout] bacb83d629af9245196594a4b499ff3e6d78d114c0a4efa87f90f065c634c803
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:19e73879b68f455e41552ea35293514db52ea292d993f571636dbffedb77a1ee" "/opt/rustwide/cargo-home/bin/cargo" "+e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4be57be09b7c980c7c2ff3ad3bd2f112c036c70913c95aaa0fc56d7e3321ff8c
[INFO] running `Command { std: "docker" "start" "-a" "4be57be09b7c980c7c2ff3ad3bd2f112c036c70913c95aaa0fc56d7e3321ff8c", kill_on_drop: false }`
[INFO] [stderr]     Checking promise v0.0.4 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0432]: unresolved import `std::io::timer`
[INFO] [stdout]  --> src/lib.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::timer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^ no `timer` in `io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::time::duration`
[INFO] [stdout]  --> src/lib.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::time::duration::Duration;
[INFO] [stdout]   |                ^^^^^^^^ could not find `duration` in `time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::sync::mpsc::Select`
[INFO] [stdout]  --> src/lib.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Select,
[INFO] [stdout]   |     ^^^^^^ no `Select` in `sync::mpsc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `range` in this scope
[INFO] [stdout]    --> src/lib.rs:117:22
[INFO] [stdout]     |
[INFO] [stdout] 117 |             for _ in range(0, futures.len()) {
[INFO] [stdout]     |                      ^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 4   + use std::slice::range;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: use of unstable library feature 'test'
[INFO] [stdout]  --> src/lib.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | extern crate test;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: see issue #50297 <https://github.com/rust-lang/rust/issues/50297> for more information
[INFO] [stdout]   = help: add `#![feature(test)]` to the crate attributes to enable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:18:21
[INFO] [stdout]    |
[INFO] [stdout] 18 |     TaskFailure(Box<Any+Send>),
[INFO] [stdout]    |                     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 18 |     TaskFailure(Box<dyn Any+Send>),
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:166:23
[INFO] [stdout]     |
[INFO] [stdout] 166 |     pub fn from_fn<F: FnOnce<(), T> + Send>(func: F) -> Future<T> {
[INFO] [stdout]     |                       ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 166 |     pub fn from_fn<F: FnOnce<(), Output = T> + Send>(func: F) -> Future<T> {
[INFO] [stdout]     |                                  ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:181:21
[INFO] [stdout]     |
[INFO] [stdout] 181 |     pub fn delay<F: FnOnce<(), T>+Send>(func: F, duration: Duration) -> Future<T> {
[INFO] [stdout]     |                     ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 181 |     pub fn delay<F: FnOnce<(), Output = T>+Send>(func: F, duration: Duration) -> Future<T> {
[INFO] [stdout]     |                                ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:190:28
[INFO] [stdout]     |
[INFO] [stdout] 190 |     pub fn map<B: Send, F: FnOnce<(T,), B>+Send>(self, func: F) -> Future<B> {
[INFO] [stdout]     |                            ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 190 |     pub fn map<B: Send, F: FnOnce<(T,), Output = B>+Send>(self, func: F) -> Future<B> {
[INFO] [stdout]     |                                         ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:219:25
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub fn on_result<F: FnOnce<(Result<T, FutureError>,), ()>+Send>(self, f: F) {
[INFO] [stdout]     |                         ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub fn on_result<F: FnOnce<(Result<T, FutureError>,), Output = ()>+Send>(self, f: F) {
[INFO] [stdout]     |                                                           ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:228:26
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub fn on_success<F: FnOnce<(T,), ()>+Send>(self, f: F) {
[INFO] [stdout]     |                          ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub fn on_success<F: FnOnce<(T,), Output = ()>+Send>(self, f: F) {
[INFO] [stdout]     |                                       ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:239:26
[INFO] [stdout]     |
[INFO] [stdout] 239 |     pub fn on_failure<F: FnOnce<(FutureError,), ()>+Send>(self, f: F) {
[INFO] [stdout]     |                          ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 239 |     pub fn on_failure<F: FnOnce<(FutureError,), Output = ()>+Send>(self, f: F) {
[INFO] [stdout]     |                                                 ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:250:27
[INFO] [stdout]     |
[INFO] [stdout] 250 |     pub fn on_complete<S: FnOnce<(T,),()>+Send, F: FnOnce<(FutureError,),()>+Send>(self, success: S, failure: F) {
[INFO] [stdout]     |                           ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 250 |     pub fn on_complete<S: FnOnce<(T,),Output = ()>+Send, F: FnOnce<(FutureError,),()>+Send>(self, success: S, failure: F) {
[INFO] [stdout]     |                                       ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:250:52
[INFO] [stdout]     |
[INFO] [stdout] 250 |     pub fn on_complete<S: FnOnce<(T,),()>+Send, F: FnOnce<(FutureError,),()>+Send>(self, success: S, failure: F) {
[INFO] [stdout]     |                                                    ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 250 |     pub fn on_complete<S: FnOnce<(T,),()>+Send, F: FnOnce<(FutureError,),Output = ()>+Send>(self, success: S, failure: F) {
[INFO] [stdout]     |                                                                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::io::timer`
[INFO] [stdout]  --> src/lib.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::timer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^ no `timer` in `io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `promise` (lib) due to 14 previous errors; 1 warning emitted
[INFO] [stdout] error: aborting due to 13 previous errors; 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] Some errors have detailed explanations: E0107, E0425, E0432, E0658.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0107`.
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::time::duration`
[INFO] [stdout]  --> src/lib.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::time::duration::Duration;
[INFO] [stdout]   |                ^^^^^^^^ could not find `duration` in `time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::sync::mpsc::Select`
[INFO] [stdout]  --> src/lib.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Select,
[INFO] [stdout]   |     ^^^^^^ no `Select` in `sync::mpsc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::boxed::BoxAny`
[INFO] [stdout]    --> src/lib.rs:270:9
[INFO] [stdout]     |
[INFO] [stdout] 270 |     use std::boxed::BoxAny;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ no `BoxAny` in `boxed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::time::duration`
[INFO] [stdout]    --> src/lib.rs:271:20
[INFO] [stdout]     |
[INFO] [stdout] 271 |     use std::time::duration::Duration;
[INFO] [stdout]     |                    ^^^^^^^^ could not find `duration` in `time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::io::timer`
[INFO] [stdout]    --> src/lib.rs:272:9
[INFO] [stdout]     |
[INFO] [stdout] 272 |     use std::io::timer;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ no `timer` in `io`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this unresolved item instead
[INFO] [stdout]     |
[INFO] [stdout] 272 |     use timer;
[INFO] [stdout]     |         ~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `range` in this scope
[INFO] [stdout]    --> src/lib.rs:117:22
[INFO] [stdout]     |
[INFO] [stdout] 117 |             for _ in range(0, futures.len()) {
[INFO] [stdout]     |                      ^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 4   + use std::slice::range;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:281:30
[INFO] [stdout]     |
[INFO] [stdout] 281 |         assert_eq!(p.resolve(123us), Ok(()));
[INFO] [stdout]     |                              ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:282:39
[INFO] [stdout]     |
[INFO] [stdout] 282 |         assert_eq!(f.get().ok(), Some(123us));
[INFO] [stdout]     |                                       ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:300:41
[INFO] [stdout]     |
[INFO] [stdout] 300 |         let f = Future::from_fn(move || 123us);
[INFO] [stdout]     |                                         ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:301:39
[INFO] [stdout]     |
[INFO] [stdout] 301 |         assert_eq!(f.get().ok(), Some(123us));
[INFO] [stdout]     |                                       ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:308:13
[INFO] [stdout]     |
[INFO] [stdout] 308 |             123us
[INFO] [stdout]     |             ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:320:40
[INFO] [stdout]     |
[INFO] [stdout] 320 |         let f = Future::delay(move ||  123us, Duration::seconds(3));
[INFO] [stdout]     |                                        ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:322:39
[INFO] [stdout]     |
[INFO] [stdout] 322 |         assert_eq!(f.get().ok(), Some(123us));
[INFO] [stdout]     |                                       ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:357:31
[INFO] [stdout]     |
[INFO] [stdout] 357 |         let f = Future::value(123us);
[INFO] [stdout]     |                               ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:358:39
[INFO] [stdout]     |
[INFO] [stdout] 358 |         assert_eq!(f.get().ok(), Some(123us));
[INFO] [stdout]     |                                       ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:364:39
[INFO] [stdout]     |
[INFO] [stdout] 364 |         let f = Future::delay(move || 123us, Duration::seconds(1));
[INFO] [stdout]     |                                       ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:368:59
[INFO] [stdout]     |
[INFO] [stdout] 368 |         assert_eq!(rx.recv().ok().unwrap().ok().unwrap(), 123us)
[INFO] [stdout]     |                                                           ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:374:39
[INFO] [stdout]     |
[INFO] [stdout] 374 |         let f = Future::delay(move || 123us, Duration::seconds(1));
[INFO] [stdout]     |                                       ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:378:45
[INFO] [stdout]     |
[INFO] [stdout] 378 |         assert_eq!(rx.recv().ok().unwrap(), 123us)
[INFO] [stdout]     |                                             ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:384:31
[INFO] [stdout]     |
[INFO] [stdout] 384 |         let f = Future::value(3us);
[INFO] [stdout]     |                               ^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:389:45
[INFO] [stdout]     |
[INFO] [stdout] 389 |         assert_eq!(rx.recv().ok().unwrap(), 9us);
[INFO] [stdout]     |                                             ^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: use of unstable library feature 'test'
[INFO] [stdout]  --> src/lib.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | extern crate test;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: see issue #50297 <https://github.com/rust-lang/rust/issues/50297> for more information
[INFO] [stdout]   = help: add `#![feature(test)]` to the crate attributes to enable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:18:21
[INFO] [stdout]    |
[INFO] [stdout] 18 |     TaskFailure(Box<Any+Send>),
[INFO] [stdout]    |                     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 18 |     TaskFailure(Box<dyn Any+Send>),
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:166:23
[INFO] [stdout]     |
[INFO] [stdout] 166 |     pub fn from_fn<F: FnOnce<(), T> + Send>(func: F) -> Future<T> {
[INFO] [stdout]     |                       ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 166 |     pub fn from_fn<F: FnOnce<(), Output = T> + Send>(func: F) -> Future<T> {
[INFO] [stdout]     |                                  ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:181:21
[INFO] [stdout]     |
[INFO] [stdout] 181 |     pub fn delay<F: FnOnce<(), T>+Send>(func: F, duration: Duration) -> Future<T> {
[INFO] [stdout]     |                     ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 181 |     pub fn delay<F: FnOnce<(), Output = T>+Send>(func: F, duration: Duration) -> Future<T> {
[INFO] [stdout]     |                                ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:190:28
[INFO] [stdout]     |
[INFO] [stdout] 190 |     pub fn map<B: Send, F: FnOnce<(T,), B>+Send>(self, func: F) -> Future<B> {
[INFO] [stdout]     |                            ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 190 |     pub fn map<B: Send, F: FnOnce<(T,), Output = B>+Send>(self, func: F) -> Future<B> {
[INFO] [stdout]     |                                         ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:219:25
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub fn on_result<F: FnOnce<(Result<T, FutureError>,), ()>+Send>(self, f: F) {
[INFO] [stdout]     |                         ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub fn on_result<F: FnOnce<(Result<T, FutureError>,), Output = ()>+Send>(self, f: F) {
[INFO] [stdout]     |                                                           ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:228:26
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub fn on_success<F: FnOnce<(T,), ()>+Send>(self, f: F) {
[INFO] [stdout]     |                          ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub fn on_success<F: FnOnce<(T,), Output = ()>+Send>(self, f: F) {
[INFO] [stdout]     |                                       ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:239:26
[INFO] [stdout]     |
[INFO] [stdout] 239 |     pub fn on_failure<F: FnOnce<(FutureError,), ()>+Send>(self, f: F) {
[INFO] [stdout]     |                          ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 239 |     pub fn on_failure<F: FnOnce<(FutureError,), Output = ()>+Send>(self, f: F) {
[INFO] [stdout]     |                                                 ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:250:27
[INFO] [stdout]     |
[INFO] [stdout] 250 |     pub fn on_complete<S: FnOnce<(T,),()>+Send, F: FnOnce<(FutureError,),()>+Send>(self, success: S, failure: F) {
[INFO] [stdout]     |                           ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 250 |     pub fn on_complete<S: FnOnce<(T,),Output = ()>+Send, F: FnOnce<(FutureError,),()>+Send>(self, success: S, failure: F) {
[INFO] [stdout]     |                                       ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:250:52
[INFO] [stdout]     |
[INFO] [stdout] 250 |     pub fn on_complete<S: FnOnce<(T,),()>+Send, F: FnOnce<(FutureError,),()>+Send>(self, success: S, failure: F) {
[INFO] [stdout]     |                                                    ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 250 |     pub fn on_complete<S: FnOnce<(T,),()>+Send, F: FnOnce<(FutureError,),Output = ()>+Send>(self, success: S, failure: F) {
[INFO] [stdout]     |                                                                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 31 previous errors; 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0107, E0425, E0432, E0658.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0107`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `promise` (lib test) due to 32 previous errors; 1 warning emitted
[INFO] running `Command { std: "docker" "inspect" "4be57be09b7c980c7c2ff3ad3bd2f112c036c70913c95aaa0fc56d7e3321ff8c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4be57be09b7c980c7c2ff3ad3bd2f112c036c70913c95aaa0fc56d7e3321ff8c", kill_on_drop: false }`
[INFO] [stdout] 4be57be09b7c980c7c2ff3ad3bd2f112c036c70913c95aaa0fc56d7e3321ff8c
